//
// Created by Zhangwj on 2023/9/27.
//

#ifndef COMPILE_TASK2_FORSTMTITEMNODE_H
#define COMPILE_TASK2_FORSTMTITEMNODE_H


#include "StmtItemNode.h"
#include "../../Parser.h"
#include "../ForStmtNode.h"
#include "../CondNode.h"

class ForStmtItemNode : public StmtItemNode {
public:
    // 'for' '(' [ForStmt] ';' [Cond] ';' [forStmt] ')' Stmt
    std::unique_ptr<ForStmtNode> ForStmt1;
    std::unique_ptr<CondNode> Cond;
    std::unique_ptr<ForStmtNode> ForStmt3;
    std::unique_ptr<StmtNode> Stmt;

    static std::unique_ptr<ForStmtItemNode> ForStmtItemParser(Parser &parser);
};


#endif //COMPILE_TASK2_FORSTMTITEMNODE_H
